package com.wish.wishfinancial_service.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 *
 * </p>
 *
 * @author weijiaz
 * @since 2021-04-10
 *
 * </p>
 *
 * @author pengge
 * @since 2021-04-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_sf_contract")
public class TSfContract implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 合同编号（系统生成）
     */
    @TableField("sf_contract_no")
    private String sfContractNo;

    /**
     * 外部合同编号（线下合同编号）
     */
    @TableField("out_contract_no")
    private String outContractNo;

    /**
     * 上一合同ID，续约合同的时候
     */
    @TableField("last_contract_id")
    private Long lastContractId;

    /**
     * 上一合同编号
     */
    @TableField("last_contract_no")
    private String lastContractNo;

    /**
     * 商户ID
     */
    @TableField("business_id")
    private Long businessId;

    /**
     * 部门ID
     */
    @TableField("dept_id")
    private Long deptId;

    /**
     * 部门编号
     */
    @TableField("dept_no")
    private String deptNo;

    /**
     * 小区名(使用楼盘名称)
     */
    @TableField("premise_name")
    private String premiseName;

    /**
     * 房产编号
     */
    @TableField("house_id")
    private String houseId;

    /**
     * 房产信息(考虑在房产表中增加house_name，然后带出)
     */
    @TableField("house_name")
    private String houseName;

    /**
     * 所有权类型(1：国有房产，2：直管房产，3：自管房产，4：军队房产，5：集体所有房产，6：私有(自由)房产，7：港、澳、台投资房产，8：涉外房产，9：其它房产)
     */
    @TableField("house_type")
    private Integer houseType;

    /**
     * 房产证书编号
     */
    @TableField("house_zs_no")
    private String houseZsNo;

    /**
     * 产权地址
     */
    @TableField("cq_address")
    private String cqAddress;

    /**
     * 业主ID
     */
    @TableField("owner_id")
    private Long ownerId;

    /**
     * 业主姓名
     */
    @TableField("owner_name")
    private String ownerName;

    /**
     * 是否为签约人（业主是否为签约人） 0：是，1：否
     */
    @TableField("sign_with_owner")
    private Boolean signWithOwner;

    /**
     * 业主证件号码（身份证）
     */
    @TableField("owner_id_card")
    private String ownerIdCard;

    /**
     * 业主手机号
     */
    @TableField("owner_mobile")
    private String ownerMobile;

    /**
     * 业主联系地址
     */
    @TableField("owner_contact_address")
    private String ownerContactAddress;

    /**
     * 签约人(甲方)
     */
    @TableField("sign_user_name")
    private String signUserName;

    /**
     * 签约人证件号（身份证）
     */
    @TableField("sign_user_id_card")
    private String signUserIdCard;

    /**
     * 签约人手机号
     */
    @TableField("sign_user_mobile")
    private String signUserMobile;

    /**
     * 紧急联系电话
     */
    @TableField("sign_user_emergency_phone")
    private String signUserEmergencyPhone;

    /**
     * 银行卡号
     */
    @TableField("bank_card")
    private String bankCard;

    /**
     * 持卡人姓名
     */
    @TableField("bank_user_name")
    private String bankUserName;

    /**
     * 持卡人身份证
     */
    @TableField("bank_user_id_card")
    private String bankUserIdCard;

    /**
     * 银行ID（开户总行ID）
     */
    @TableField("bank_id")
    private Long bankId;

    /**
     * 银行名称（开户总行名称，对应bank表）
     */
    @TableField("bank_name")
    private String bankName;

    /**
     * 开户行(支行)
     */
    @TableField("bank_open")
    private String bankOpen;

    /**
     * 租约期限开始时间
     */
    @TableField("lease_start_time")
    private LocalDateTime leaseStartTime;




    /**
     * 租约期限结束时间
     */



    private Date leaseEndTime;

    /**
     * 收房月租金
     */
    @TableField("month_rent")
    private BigDecimal monthRent;

    /**
     * 房产押金
     */
    @TableField("deposit_money")
    private BigDecimal depositMoney;

    /**
     * 支付方式(押X付Y的X)
     */
    @TableField("deposit_type")
    private Integer depositType;

    /**
     * 支付方式(押X付Y的Y）
     */
    @TableField("payment_type")
    private Integer paymentType;

    /**
     * 合同签订时间，（暂定设置为提交日期）
     */
    private Date conSignTime;

    /**
     * 合同录入时间，（暂定设置为提交日期）
     */
    private Date conInfoTime;

    /**
     * 合同审核时间，（暂定设置为提交日期）
     */
    private Date conAudTime;

    /**
     * 合同录入人（暂定设置为创建人）
     */
    @TableField("oper_id")
    private Long operId;

    /**
     * 收房人，（暂定设置为创建人）
     */
    @TableField("sf_user_id")
    private Long sfUserId;

    /**
     * 收房人姓名
     */
    @TableField("sf_user_name")
    private String sfUserName;

    /**
     * 合同状态（1，草稿。2，已提交。3，已解约。4，已结束。9:作废）
     */
    @TableField("status")
    private Integer status;

    /**
     * 续约状态（0，未续约。1，已续约）
     */
    @TableField("xy_status")
    private Boolean xyStatus;

    /**
     * 是否收房贷,0:否 1:是
     */
    @TableField("sf_loan_flg")
    private Boolean sfLoanFlg;

    /**
     * 冻结状态：0未冻结 1已冻结(申请金融服务的时候，才会有冻结状态)
     */
    private Integer freezeStatus;

    /**
     * 银行账户类型（对公账户、对私账户）AccountTypeEnum
     */
    @TableField("account_type")
    private Integer accountType;

    /**
     * 银行卡号
     */
    @TableField("bank_card_number")
    private String bankCardNumber;

    /**
     * 账户名称（对公为企业名称，对私为姓名）
     */
    @TableField("account_name")
    private String accountName;

    /**
     * 联行行号（手输，对公必须）
     */
    @TableField("bank_branch_code_lh")
    private String bankBranchCodeLh;

    /**
     * 开户行所在省ID
     */
    @TableField("bank_account_province")
    private Integer bankAccountProvince;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 预留字段1
     */
    @TableField("reserve1")
    private BigDecimal reserve1;

    /**
     * 预留字段2
     */
    @TableField("reserve2")
    private Integer reserve2;

    /**
     * 预留字段3
     */
    @TableField("reserve3")
    private String reserve3;

    /**
     * 预留字段4
     */
    @TableField("reserve4")
    private String reserve4;

    /**
     * 预留字段5
     */
    @TableField("reserve5")
    private String reserve5;

    /**
     * 删除标识，0:未删除，1：删除
     */
    @TableField("del_flg")
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    @TableField("create_userid")
    private Long createUserid;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新用户ID
     */
    @TableField("update_userid")
    private Long updateUserid;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    /**
     * 房产类型：1.合租；2.整租；3.公寓
     */
    @TableField("house_lease_type")
    private Integer houseLeaseType;


}
